
/**
  ******************************************************************************
  * @file    includes.h
  * @author  Dragon.Chen
  * @version V1.0.0
  * @date    09-15-2014
  * @brief   应用基本设置
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT 2014 上海今中网络科技有限公司 </center></h2>
  ******************************************************************************
  */

#ifndef __INCLUDES__H__
#define __INCLUDES__H__


#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>



/// 进程通讯所锁
#define ShmLogoffLock()         sem_process_wait(ShmLogoffSemId)
#define ShmLogoffUnlock()       sem_process_post(ShmLogoffSemId)
#define ShmBusyRatioLock()      sem_process_wait(ShmBusyRatioSemId)
#define ShmBusyRatioUnlock()    sem_process_post(ShmBusyRatioSemId)

/// 进程相关的全局变量
#define ShmLogoffHead       ShmLogoff                   // 心跳包头部
#define ShmLogoffBody       ShmLogoff + SERVER_SHM_LF_HEAD_SIZE
#define NWorkerProcess      SERVER_NWORKER_PROCESS      // 工作进程数
extern int                  Epollfd;                    // epoll标识符
extern int                  Listenfd;                   // 监听套接子
extern int                  SigPipefd[2];               // 信号管道，用于实现统一事件源
extern int                  WorkerProcessIndex;         // worker进程在进程池中序号(也决定运行master进程)
extern int                 *StopWorkingWorker;          // worker进程停止工作
extern int                  ShmLogoffSemId;             // logoff信号量标识符
extern int                  ShmLogoffShmId;             // 共享内存标识符(logoff)
extern int                  ShmBusyRatioSemId;          // worker的连接数信号量标识符
extern int                  ShmBusyRatioShmId;          // 共享内存标识符(每个worker的连接数)
extern char                *ShmLogoff;                  // 共享内存指针(心跳包)
extern char                *ShmBusyRatio;               // 共享内存指针(每个worker的连接数)
extern char               **BusyRatioPtr;               // worker的连接数指针
//extern WORKER_PROCESS_T    *WorkerProcess;              // 所有worker进程的描述信息

/* above variable belongs to framework, please don't modify it unless you know what to do! */

/// 应用相关信息定义
#define SERVER_VERSION              "V3.0000"                               // 服务器版本号
#define SERVER_PASSWORD             "jinzhong&*%%*&gnohznij"                // 链接服务器口令(根据需要改动)
#define SERVER_PSWDSIZE             strlen(SERVER_PASSWORD)                 // 口令长度
#define SERVER_POSITIVE             "OK"
#define SERVER_NEGTIVE              "ER"

/// 路径定义
#define SERVER_SHM_LF_SIZE          400000                                  // LOGOFF共享内存大小
#define SERVER_SHM_LF_HEAD_SIZE     10                                      // LOGOFF共享内存head大小
#define SERVER_SHM_LF_BODY_SIZE     (SERVER_SHM_LF_SIZE - SERVER_SHM_LF_HEAD_SIZE) // LOGOFF共享内存body大小
#define SERVER_SHM_CT_PER_SIZE      10                                      // 用于记录每个进程的连接数内存大小
#define SERVER_SHM_CT_SIZE          (SERVER_SHM_CT_PER_SIZE * SERVER_NWORKER_PROCESS) // 用于记录进程连接数总内存大小

/// 定义常用变量的别名
#define SERVER_DAEMON               ServerConfig.daemon                     // 服务器是否后台化
#define SERVER_NWORKER_PROCESS      ServerConfig.nWorkerProcess             // worker进程数量
#define SERVER_PORT                 ServerConfig.serverPort                 // 服务器端口号
#define SERVER_IP                   ServerConfig.serverIP                   // 服务器端IP
#define SERVER_PID_PATH             ServerConfig.pidPath                    // 服务器程序PID存放路径



#endif

/******************* (C) COPYRIGHT 2018 上海今中网络科技有限公司 *****END OF FILE****/



